#include <iostream>  //C++的标准输入输出流头文件 
using namespace std; //我要使用命名空间std
/*
	引用作为函数的形参：实参传递左值和右值
	概念：const修饰的引用叫做常引用
	    例如： int a=45;
		       const int &b=a;
	常引用的作用：
	    作用1：函数的形参是常引用，实参可以传递左值也可以传递右值
		       函数的形参是普通引用(非const修饰)，实参只可以传递左值不能传递右值
		作用2：常引用不可以修改指向的变量值	    
*/

//void fun(int &num)
void fun(const int &num)
{
	cout<<"num is: "<<num<<endl;
}
int main()  
{
	int n=456;
	//调用函数
	//写法1：
	fun(n);
	//写法2：
	/*
		error: invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’
	*/
	fun(n+1);  //n+1是右值，普通引用不能传递右值
	//写法3：
	fun(147);    //147也是右值 ，普通引用不能传递右值
	
	
	return 0;
}


